/*!
 * lmpop JavaScript Library v1.0
 * http://www.lmpop.com/
 * Copyright 2011, stranger2008, 雷鸣科技
 * Date:2011-01-28
 */


//×××××××××××××××××××××××××××××××××××××××××××××××××××××以下为验证范围×××××××××××××××××××××××××××××××××××××××××××××××××××××

//判断是否为空，并给予提示，并定位焦点
//常用在输入框和下拉框
//如果id是隐藏字段的话，就不适合用这个了
function checkEmptyFocus(id,name){
	if(checkEmpty(id)){
		alertTip(name);
		toFoucs(id);
		return flase;
	}
}

//判断是否为空，并给予提示
//常用在输入框和下拉框
//如果id是隐藏字段的话，就适合用这个了，因为这个不定位焦点
function checkEmptyNoFocus(id,name){
	if(checkEmpty(id)){
		alertTip(name);
		return flase;
	}
}

function alertTip(name){
	alert('对不起，'+name+'不能为空。');
}

//判断是否为空
//是返回true
//否返回false
function checkEmpty(val){
	if(V(val)==null || V(val)=='') return true;
	return false;
}

//判断是否为英文
//是返回true
//否返回false
function checkEnNum(val){
	var myreg = /^[A-Za-z0-9]+$/;
	if(myreg.test(V(val))) return true;
	return false;
}

//判断是否为浮点型
//是返回true
//否返回false
function checkFloat(val){
	var myreg = /^((\d+\.\d*[1-9]\d*)|(\d*[1-9]\d*\.\d+)|(\d*[1-9]\d*))$/;
	if(myreg.test(V(val))) return true;
	return false;
}

//判断是否为英文
//是返回true
//否返回false
function checkEn(val){
	var myreg = /^[A-Za-z]+$/;
	if(myreg.test(V(val))) return true;
	return false;
}

//判断是否为中文
//是返回true
//否返回false
function checkCn(val){
	var myreg = /[^u4e00-u9fa5]/;
	if(myreg.test(V(val))) return true;
	return false;
}

//判断是否为电话号码
//是返回true
//否返回false
function checkPhone(val){
	var myreg = /^\d{3,4}\d{7,8}$/;
	if(myreg.test(V(val))) return true;
	return false;
}

//判断是否为手机号
//是返回true
//否返回false
function checkCellphone(val){
	var myreg = /^(1\d{2})+\d{8}$/;
	if(myreg.test(V(val))) return true;
	return false;
}

//判断是否为邮箱或msn
//是返回true
//否返回false
function checkEmail(val){
	var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
	if(myreg.test(V(val))) return true;
	return false;
}

//判断是否为数字
//是返回true
//否返回false
function checkInt(val){
	if(!isNaN(V(val))) return true;
	return false;
}

function isNaN(val){
	var myreg=/^\d+(\.\d+)?$/;
	if(myreg.test(val)) return true;
	return false;
}

//判断是否为网址链接
//是返回true
//否返回false
function checkUrl(val){
	var strRegex = "^((https|http|ftp|rtsp|mms)?://)"  
	+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@  
	+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184  
	+ "|" // 允许IP和DOMAIN（域名） 
	+ "([0-9a-z_!~*'()-]+\.)*" // 域名- www.  
	+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名  
	+ "[a-z]{2,6})" // first level domain- .com or .museum  
	+ "(:[0-9]{1,4})?" // 端口- :80  
	+ "((/?)|" // a slash isn't required if there is no file name  
	+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";  
	var re=new RegExp(strRegex);  
	if (re.test(val)){
		return true;
	}else{
		return false;
	}
}

//×××××××××××××××××××××××××××××××××××××××××××××××××××××以上为验证范围×××××××××××××××××××××××××××××××××××××××××××××××××××××


//×××××××××××××××××××××××××××××××××××××××××××××××××××××以下为常用方法封装×××××××××××××××××××××××××××××××××××××××××××××××××

//根据名称得到checkbox的值
function getCheckBoxVal(val){
	var result = '';
	var obj = N(val);
	for(var i=0;i<obj.length;i++){
		if(obj[i].checked){
			result += obj[i].value+'|';
		}
	}
	return result;
}

//根据名称得到radio的值
function getRadioVal(val){
	var obj = N(val);
	for(var i=0;i<obj.length;i++){
		if(obj[i].checked){
			return obj[i].value;
		}
	}
	return '';
}

//根据ID得到该元素
function O(val){
	return document.getElementById(val);
}

//根据name得到元素数组
function N(val){
	return document.getElementsByName(val);
}

//根据ID得到元素的值
function V(val){
	return document.getElementById(val).value;
}

//焦点定位重写
function toFoucs(val){
	O(val).focus();
}

//取出val值的前后空格
function trim(val){
	return val.replace(/(\s*$)/g,'');
}

//给对应的ID元素赋值
function setVal(key,val){
	return document.getElementById(key).value = val;
}

//×××××××××××××××××××××××××××××××××××××××××××××××××××××以上为常用方法封装×××××××××××××××××××××××××××××××××××××××××××××××××

//×××××××××××××××××××××××××××××××××××××××××××××××××××××以下为为AJAX异步提交范围×××××××××××××××××××××××××××××××××××××××××××

var request;
var idname;

//创建XMLHttpRequest对象
function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject('Msxml2.XMLHTTP');
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject('Microsoft.XMLHTTP');
      } catch (failed) {
        request = false;
      }
    }
  }
  if (!request) alert('创建XMLHttpRequest对象失败!');
}

//响应函数
/*
 * HTTP状态代码解释
 * 0:请求没有发出（在调用 open() 之前）。
 * 1:请求已经建立但还没有发出（调用 send() 之前）。
 * 2:请求已经发出正在处理之中（这里通常可以从响应得到内容头部）。
 * 3:请求已经处理，响应中通常有部分数据可用，但是服务器还没有完成响应。
 * 4:响应已完成，可以访问服务器响应并使用它。
*/
function ajaxResponse(){
	//alert(request.readyState);
	if (request.readyState == 4){
       if (request.status == 200){
         var ajaxResponseText = request.responseText;
		 setVal(idname,ajaxResponseText);
	   }else if (request.status == 404){
         alert('Request URL does not exist');
	   }else{
         alert('Error: status code is ' + request.status);
	   }
	}
}

//url:请求地址
//type:请求类型 GET 和 POST
function bizAjax(url,id){
	idname = id;
	if(url.indexOf("?")>-1){
      url=url+ "&now="+(new Date()).getTime();  
	}else{  
	   url=url+ "?now="+(new Date()).getTime();  
	}
	createRequest();
    request.open("POST", url, true);
    request.onreadystatechange = ajaxResponse;
    request.send(null);
}




//×××××××××××××××××××××××××××××××××××××××××××××××××××××以上为为AJAX异步提交范围×××××××××××××××××××××××××××××××××××××××××××